import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
 * Clase que representa las balas que disparan los Helicopteros 
 * @author (Programa´ión Orientada a Objetos- Adrián Cerda Cerda
 * @version (Mayo 2012)
 */
public class Bala2 extends Bala
{
    World mundo;//para pedir el mundo
    PlaneWorld pw;//para que la Bala2 se encuntre en la posión correspondiente al Mundo
    private boolean elim=false;//variable para saber si le pego o no al Avion
    private int x1=0;//para guardar el valor de donde disparo el Helicoptero en X
    private int y1=0;////para guardar el valor de donde disparo el Helicoptero en Y
    /**
     * Realiza todas las acciones de la Bala2
     */
    public void act() 
    {
        posicion();
        super.move(2);
        int x2= getX();
        int y2= getY();
        int x3= x2-x1;
        int y3=  y2-y1;
        double d= Math.sqrt(Math.pow(x3,2)+Math.pow(y3,2));
        pegar();    
    
        if(elim==true ||d>250 || getX()>=getWorld().getWidth()-10|| getX()<10 || getY()>=getWorld().getHeight()-10 || getY()<10)
             super.desaparecer(this);

   }
   /**
    * Constructor de la clase Bala2 
    * @param xi inicio donde se creo la bala en X
    * @param yi inicio donde se creo la bala en Y
    */
   public Bala2(int xi,int  yi)
   {
       x1=xi;
       y1=yi;
    }
   /**
    * Permite determinar donde se encuentran Bala2 para que se localicen en una posición 
    * de acuerdo como se este moviendo el mundo
    */
   public void posicion()
    {
         pw= (PlaneWorld)super.getWorld();
         int x1= pw.scrollSpeed;
         int y1= pw.scrollSpeedY;
         int x2= getX()-x1;
         int y2= getY()-y1;
         if(x2<4)
           x2= pw.getWidth()-5;
         if(x2>= pw.getWidth()-4)
           x2=4;
         if(y2<4)
           y2= pw.getHeight()-5;
         if(y2> pw.getHeight()-4)
            y2=4;
         setLocation(x2 , y2 );
    
   }
   /**
    * Detecta si hay una intersección con el Avión, creando una explosión y quitandole una vida 
    */
   public void pegar()
    {
       Actor p;
        p= super.getOneObjectAtOffset(0,0,Plane.class);
        //Plane p= (Plane) getOneIntersectingObject(Plane.class);
        if(p!=null)
        {
                elim=true;
                mundo= (World)super.getWorld();
                Explosion exp= new Explosion();
                mundo.addObject(exp,getX(),getY());
                ((PlaneWorld)super.getWorld()).disminuyeVida(); 
                
        }
        else
           elim= false;
        
    }       
}
    
        

